package cn.hbu.zlfw.patent.service;


import java.util.List;

import cn.hbu.zlfw.admin.entity.Expert;
import cn.hbu.zlfw.admin.entity.ScienceExpert;
import cn.hbu.zlfw.common.base.service.BaseService;
import cn.hbu.zlfw.common.util.PageModel;
import cn.hbu.zlfw.patent.entity.Patent;

/**
 * 
 * @ClassName: PatentService 
 * @Description: 专利service接口
 * @author 王鹏伟<1223443289@qq.com>
 * @date 2017年11月2日 下午7:00:05  
 * @version V1.0
 */
public interface PatentService extends BaseService<Patent, String>{
	/**
	 * @param researcherId 
	 * @Title: listPatentByParamsToResearcher 
	 * @Description:查询所有科研人员申请专利信息
	 * @param patentState
	 * @param name
	 * @return PageModel   
	 * @throws
	 */
	List<Patent> listPatentByParamsToResearcher(Integer patentState, String name, String researcherId);
	/**
	 * 
	 * @Title: listPatentByParamsToScience 
	 * @Description: 分页查询科技服务人员已接单专利的相关信息
	 * @return PageModel 
	 * @throws
	 */
	PageModel<Patent> listPatentByParamsToScience(PageModel<Patent> pageModel, String name , String scienceId);
	/**
	 * @Title: listAssistPatentByParamsToScience 
	 * @Description: 分页条件查询科技服务人员协助专利列表
	 * @return PageModel 
	 * @throws
	 */
	PageModel<Patent> listAssistPatentByParamsToScience(PageModel<Patent> pageModel, String name , String assistScienceId);
	
	/**
	 * 
	 * @Title: listAllPatentByParamsToScience 
	 * @Description: 分页条件查询科技服务人员所可以查询所有专利列表
	 * @return PageModel 
	 * @throws
	 */
	PageModel<Patent> listAllPatentByParamsToScience(PageModel<Patent> pageModel,String name,Integer schoolType);
	/**
	 * 
	 * @Title: listFinishPatentByParamsToScience 
	 * @Description: 分页条件查询科技服务人员所有结项专利列表
	 * @return PageModel<Patent> 
	 * @throws
	 */
	PageModel<Patent> listFinishPatentByParamsToScience(PageModel<Patent> pageModel, String name, String scienceId);
	/**
	 * 
	 * @Title: listPatentOfSubjectRelatedToScience 
	 * @Description: 分页查询与科技服务人员学科相关的未接单专利
	 * @return PageModel<Patent> 
	 * @throws
	 */
	PageModel<Patent> listPatentOfSubjectRelatedToScience(PageModel<Patent> pageModel, String name,ScienceExpert scienceExpert);
	/**
	 * 
	 * @Title: listAllPatentByParamsToUnit 
	 * @Description: 单位管理员查询所有专利:即本单位所有未接单专利和所有允许跨单位未接单专利
	 * @return PageModel<Patent> 
	 * @throws
	 */
	PageModel<Patent> listAllPatentByParamsToUnit(PageModel<Patent> pageModel, String name, Integer schoolType);
	/**
	 * 
	 * @Title: listPatentByParamsToUnit 
	 * @Description: 单位管理员分页查询所有本单位和允许跨单位已接单专利的相关信息
	 * @return PageModel<Patent> 
	 * @throws
	 */
	PageModel<Patent> listPatentByParamsToUnit(PageModel<Patent> pageModel, String name, Integer schoolType);
	/**  
	
	 * <p>Title: listPatentOfSubjectRelatedToScience</p>  
	
	 * <p>Description: 分页查询与专家学科相关的未接单专利</p>  
	
	 * @param pageModel
	 * @param name
	 * @param expert
	 * @return  
	
	 */  
	PageModel<Patent> listPatentOfSubjectRelatedToExpert(PageModel<Patent> pageModel, String name, Expert expert);
	/**  
	
	 * <p>Title: listAllFinishPatent</p>  
	
	 * <p>Description: </p>  
	
	 * @param pageModel
	 * @param name
	 * @param id
	 * @return  
	
	 */  
	PageModel<Patent> listAllFinishPatent(PageModel<Patent> pageModel, String name, String id,Integer state);

}
